Author:Hongyu Xiao
Graduate Student
University of Illinois at Urbana–Champaign
August, 2020
Modified based on https://github.com/inducer/languages-and-codegen-tutorial
and http://c.biancheng.net/view/2010.html
请联系我!
邮箱是:hongyu.xiao@hotmail.com
标题开头为: PEK_Summer_Question
例如 PEK_Summer_Question anaconda无法下载
导入numpy模块
import numpy as np
n = 10 # CHANGE ME
List_Example_1 = list(range(n))
List_Example_2 = np.arange(n)
if n <= 10:
print(List_Example_1)
print(List_Example_2)
%timeit [i**2 for i in List_Example_1]
%timeit List_Example_2**2
Numpy Arrays: 少了很多的灵活性,但是有很大优点
创建一个numpy array:
#clear
np.array([1,2,3])
#clear
np.linspace(-1, 1, 10)
#clear
np.zeros((10,10), np.float64)
对于numpy array的运算,都是元素间点对点的进行的
List_Example_3 = np.array([1.2, 3, 4])
List_Example_4 = np.array([0.5, 0, 1])
#clear
List_Example_3 + List_Example_4
#clear
List_Example_3 * List_Example_4
#clear
List_Example_3 ** List_Example_4
对于矩阵乘法 使用 np.dot(A, B) 进行实现
List_Example_5 = np.random.rand(5, 4, 3)
List_Example_5.shape
List_Example_5.dtype
import numpy as np
List_Example_6 = np.random.rand(3,4,5)
List_Example_6.shape
List_Example_6[0].shape
List_Example_6[...,2].shape
List_Example_6[1,0,3]
Python中的index都是从0开始的!!
Python中的index都是从0开始的!!
Python中的index都是从0开始的!!
例如:
List_Example_6[3,2,2].shape
List_Example_6[:,2].shape
对于array中进行操作的话:
List_Example_7 = np.zeros((4,4))
List_Example_7
生成一个叫做LE7Sub 的 $2\times 2$ 矩阵
#clear
List_Example_7_Sub = List_Example_7[:2,:2]
List_Example_7_Sub
如我们之前所标注一样,如果修改List_Example_7_Sub的话...
#clear
List_Example_7_Sub[1,0] = 5
List_Example_7_Sub
print(List_Example_7)
原来的array也会被修改
我们一般使用.copy()来进行脱钩
List_Example_7_Sub = List_Example_7_Sub.copy()
List_Example_7_Sub[1,1] = 7
print(List_Example_7)
这样就不会对原来的array产生印象啦~!
除此以外,还可以用array作为array的index
List_Example_8 = np.random.rand(4,4)
List_Example_8
#clear
i = np.array([0,2])
List_Example_8[i]
还可以进行array条件筛选
List_Example_8>0.5
#clear
List_Example_8[List_Example_8>0.5]
常用的结合工具有
import numpy as np
import matplotlib.pyplot as pt
x = np.linspace(-10, 10, 100)
pt.plot(x, np.sin(x)+x*0.5)
pic = np.sin(x).reshape(len(x), 1) * np.cos(x)
pt.imshow(pic)